#ifndef __NETSEND__H__
#define __NETSEND__H__

#include "bitmap.h"

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

#define PACKAGE_TOTAL		1400U
#define PACKAGE_INFO		(4U * 3U)
#define PACKAGE_DATA		(PACKAGE_TOTAL - PACKAGE_INFO)

#define FILE_TOTAL			PACKAGE_DATA
#define FILE_INFO			(4U * 4U)
#define FILE_DATA			(FILE_TOTAL - FILE_INFO)

struct file_block
{
	uint32_t block_type;			// 0: 文件名（客户端发）	1: 有效文件块（客户端发）	2: 块请求（服务端发）		3:	控制命令(具体命令从data提取，4个字节)
	uint32_t block_id;
	uint32_t block_total;
	uint32_t valid_len;
	uint8_t data[FILE_DATA];		// 控制命令：	0：成功		1：成功，请返回文件校验码	2：失败
};

struct net_package
{
	uint32_t type;					// 0: 文件上传服务			1: 文件下载服务
	uint32_t valid_len;
	uint32_t checksum;
	uint8_t data[PACKAGE_DATA];
};

extern int send_to_server(char *, int, bitmap_class *);

#ifdef __cplusplus
}
#endif

#endif